package com.witmore.skyline.web.service;

import java.util.List;

/**
 * 地址解析服务接口
 *
 * @author 豆子高
 * @since 2025-10-16
 */
public interface AddressParseService {

    /**
     * 解析单个设备的地址信息并更新到数据库
     *
     * @param deviceId 设备ID
     * @return 是否解析成功
     */
    boolean parseAndUpdateDeviceAddress(Integer deviceId);

    /**
     * 批量解析设备地址信息并更新到数据库
     *
     * @param deviceIds 设备ID列表
     * @return 解析成功的设备数量
     */
    int batchParseAndUpdateDeviceAddress(List<Integer> deviceIds);

    /**
     * 解析单个项目的地址信息并更新到数据库
     *
     * @param projectId 项目ID
     * @return 是否解析成功
     */
    boolean parseAndUpdateProjectAddress(Integer projectId);

    /**
     * 批量解析项目地址信息并更新到数据库
     *
     * @param projectIds 项目ID列表
     * @return 解析成功的项目数量
     */
    int batchParseAndUpdateProjectAddress(List<Integer> projectIds);

    /**
     * 解析所有设备表中地址为空的记录
     *
     * @return 解析成功的设备数量
     */
    int parseAllEmptyDeviceAddresses();

    /**
     * 解析所有项目表中地址为空的记录
     *
     * @return 解析成功的项目数量
     */
    int parseAllEmptyProjectAddresses();

}
